home *** CD-ROM | disk | FTP | other *** search
/ TeX 1995 July / TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO / systems / atari / birkhahn-metafont-packed-disks / mf27-2_2e-disk2.zoo / inputs / pandora.lzs / PUNCTS.MF < prev    next >
Text File  |  1991-08-15  |  3KB  |  78 lines

  1. %*****************************************************************************
  2. %        Copyright (c) 1989 by N. N. Billawala
  3. %*****************************************************************************
  4.  
  5.  
  6. % puncts.mf  punctuation: Spanish inverted !?
  7.  
  8. % 2 characters
  9.  
  10.  
  11. iff OK "!":  "Inverted exclamation point (Spanish)";
  12.   beginchar(inv_exclamation,I_w*width#+a_mono#,cap#,.5descender#);
  13.  
  14.   min_limit(join_radius)(.5thin_stem.uc);
  15.   bot z1=(round(.5w),0);
  16.   z0=bot z1+(0,.5accent_dot_diameter);
  17.   top z3=(x1,h)//;  pos3(stem.uc,-oblique);
  18.   onaline(0,3)(2);  bot y2=max(bot y1+accent_dot_diameter+2,.3y3);
  19.   pos2(thin_stem.uc,-oblique);
  20.  
  21.   ref1=dot.b(z1,accent_dot_diameter);
  22.   ref2=(z3--z3l)softjoin(z3l--z2l)softjoin(z2l--z2r)softjoin(z2r--z3r)
  23.       softjoin(z3r--z3)--cycle;
  24.   
  25.   z10=(.5w,.5(cap-d));
  26.   p1=ref1 rotatedaround (z10,180);
  27.   p2=ref2 rotatedaround (z10,180);
  28.  
  29.   showpoints(0,1,2,3);
  30. adjust(v_a*fitbasis.uc#+m_a*a_mfit#,v_a*fitbasis.uc#+m_a*a_mfit#); 
  31. show_character; endchar;
  32.  
  33. % rotation of shape and slant of position with obliqueness
  34.  
  35. % Shape taken exactly from the exclamation point character, but rotated by 180
  36. % degrees and shifted. This does throw the labels off though.
  37. % Done this way, so that changes to one are more easily
  38. % transferred to the other. Could also have altered reference points, which
  39. % may still need to be done if the rounding turns out bad
  40.  
  41.  
  42.  
  43. iff OK "?":  "Inverted question mark (Spanish)"; 
  44.   beginchar(inv_question_mark,.35width#+b_mono#,cap#,.5descender#);   %.4width
  45.   min_limit(join_radius)(.5thin_stem.uc);
  46.   lft z1=(0,.9h)//;
  47.   rt z3r=(w,.75h)//; lft z3l=z3r-(stem.uc,0);
  48.   top y2r=bot y2l+max(1,major_curve.uc)=h+ov_t.uc; 
  49.   good_x_for(2r)(z1,z3r,.5)a; good_x_for(2l)(z1+(bulb_thickness,0),z3l,.5)b;
  50.   bot z7=(.35w,0);
  51.   z8=bot z7+(0,.5accent_dot_diameter);
  52.   bot z6=(bot z7+(0,max(bot y7+accent_dot_diameter+2,.3y2r)))//;
  53.   multpos(5,6)(thin_stem.uc,-oblique);  
  54.   onaline(6,8)(5); y5=max(y7+accent_dot_diameter+2,.35y2r);   
  55.   z4l=.4[z5l,z3l]; z4r=.4[z5r,z3r]; 
  56.  
  57.   ref1=(bulb.tl(z1,z2l,z2r,cs,max(1,.75bulb_thickness),90)soft i_t 
  58.        z3l{downward} i_t z4l o_t z5l{downward}--z6l)softjoin(z6l--z6r)
  59.        softjoin(z6r-- z5r{upward} i_t z4r o_t z3r{upward} o_t z2r{left})--cycle;
  60.   ref2=dot.b(z7,accent_dot_diameter);
  61.   
  62.   z10=(.5w,.5(cap-d));
  63.   p1=ref1 rotatedaround (z10,180);
  64.   p2=ref2 rotatedaround (z10,180);
  65.  
  66.   showpoints(1,2,3,4,5,6,7,8,10);
  67. adjust(v_C*fitbasis.uc#+m_a*b_mfit#,v_C*fitbasis.uc#+m_a*b_mfit#);
  68. show_character; endchar;
  69.  
  70. % Shape taken exactly from the question mark character, but rotated by 180
  71. % degrees and shifted. Fitting on left and right was switched.
  72. % This does throw the labels off though.
  73. % Done this way, so that changes to one are more easily
  74. % transferred to the other. Could also have altered reference points, which
  75. % may still need to be done if the rounding turns out bad
  76.  
  77.  
  78.